#ifndef MAINSCENE_H
#define MAINSCENE_H

#include <QWidget>
#include"map.h"
#include"heroplane.h"
#include"apple.h"
#include"bomb.h"
#include"diamond.h"
#include<QKeyEvent>
#include<QMouseEvent>
#include<qtimer.h>
#include<qstring.h>
#include<QApplication>
#include <QPushButton>




QT_BEGIN_NAMESPACE
namespace Ui { class MainScene; }
QT_END_NAMESPACE

class MainScene : public QWidget
{
    Q_OBJECT

public:

    //定义变量重启游戏
    static int const RESTART;


    MainScene(QWidget *parent = nullptr);
    ~MainScene();
    void initScene();  //初始化游戏场景

    //绘图事件
        void paintEvent(QPaintEvent *event);

    //地图对象
        map m_map;

    //飞机对象
       heroplane m_hero;

public slots:
     //让飞机动起来
        void plane_update();
    //苹果出场
        void appleToScene();
    //新苹果
        void newapple();
    //是否吃到苹果
        void ifeat();
    //炸弹出场
        void bombToScene();
    //新炸弹
        void newbomb();
    //是否遇到炸弹
        void ifbomb();
    //钻石出场
        void diamondToScene();
    //新钻石
        void newdiamond();
    //是否遇到钻石
        void ifdiamond();

    //计时器
        void time_record();

    //游戏开始
        void CLICK();
    //游戏重启
        void CLICK1();
    //游戏暂停
        void CLICK2();
    //游戏继续
        void CLICK3();



public:
        QTimer *timer;
        QTimer *timer1;
        QTimer *timer2;
        bool blsRun;//是否开始
        int ndirection; //玩家移动方向
        void keyPressEvent(QKeyEvent *event);


    //苹果数组
        apple m_apples[20];//苹果数量20个

    //苹果出场间隔记录
        int m_recorder;

    //炸弹数组
        bomb m_bombs[5];//炸弹数量5个
    //钻石数组
        diamond m_diamonds[3];//钻石数量3个

    //炸弹出场间隔记录
        int m_recorder1;
    //钻石出场间隔记录
        int m_recorder2;

    //玩家飞机计时器速度
        int plane_speed;//GAME_RATE=20




    //显示得分
        int score;
        QString scorelabel="🍎：";

    //显示时间
        int remain_time;
        int remain_time2;
        QString scorelabel1="都市丽人已经坚持了：";
        QString scorelabel2="s";
        QString sDisplay;
        QString speed_up;



private slots:
        void on_pushButton_clicked();

private:
    Ui::MainScene *ui;
};
#endif // MAINSCENE_H


